<?php
/**
 * (logic) 报告类型
 */
namespace App\Logic\Amazon;

class ReportType
{
    const KEY_TYPE = 'type';//报告类型
    const KEY_MULTI = 'multi';//是否分端点（站点）
    const KEY_INTERVAL = 'interval';//取值间隔 按天计
    const KEY_NAME = 'name';//类型名称

    public static function getReportTypeListByTypeIds($typeIds){
        $reportTypeList = collect(self::$_reportTypeList);
        $collect = $typeIds ? $reportTypeList->only($typeIds) : $reportTypeList;
        return $collect->pluck(self::KEY_TYPE)->toArray();
    }

    public static function getReportTypeIdByType($type){
        foreach(self::$_reportTypeList as $k => $item){
            if($item[self::KEY_TYPE] == $type){
                return $k;
            }
        }
        return null;
    }

    public static function getReportTypeOption(){
        $option = [];
        foreach(self::$_reportTypeList as $k=>$item){
            $option[$k] = $item[self::KEY_NAME];
        }
        return $option;
    }

    public static function getReportTypeName($type){
        return self::$_reportTypeList[$type][self::KEY_TYPE];
    }

    public static $_reportTypeList = [
        //已收到库存报告 包含亚马逊运营中心已完成接收的库存。报告内容会每天更新   已收货
        1 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_INVENTORY_RECEIPTS_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'每日已收货库存报告'],
        //亚马逊物流库存状况报告。报告内容会每天更新     健康库存   暂时不用
        2 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_INVENTORY_HEALTH_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'每日健康库存报告'],
        //亚马逊物流管理库存 该报告中包含在售（非存档）库存的当前详情。报告内容接近实时更新   库存
        3 => [self::KEY_TYPE=>'_GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA_',self::KEY_INTERVAL=>0,self::KEY_MULTI=>1,self::KEY_NAME=>'实时库存报告'],
        //亚马逊物流退货报告。报告内容会每天更新    退货
        4 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'每日退货报告'],
        //亚马逊物流移除货件详情报告。报告内容接近实时更新  移库订单
        5 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA_',self::KEY_INTERVAL=>0,self::KEY_MULTI=>0,self::KEY_NAME=>'移库订单报告'],
        //财务报表。报告内容周期14天更新
        6 => [self::KEY_TYPE=>'_GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_',self::KEY_INTERVAL=>14,self::KEY_MULTI=>0,self::KEY_NAME=>'周期性财务报表'],
        //卖家商品报告 （可售商品报告 （“库存报告”） ）
        7 => [self::KEY_TYPE=>'_GET_FLAT_FILE_OPEN_LISTINGS_DATA_',self::KEY_INTERVAL=>0,self::KEY_MULTI=>1,self::KEY_NAME=>'实时售价报告'],
        //亚马逊物流货件报告 包含详细的订单/货件/商品信息，包括价格、地址和 “追踪” 数据。报告内容会每天更新
        8 => [self::KEY_TYPE=>'_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'每日订单追踪号报告'],
        //多国库存报告 包含可用于按国家/地区本地配送的数量，以帮助欧洲的多国库存卖家跟踪其FBA库存。 报告内容接近实时更新。暂时不用
        9 => [self::KEY_TYPE=>'_GET_AFN_INVENTORY_DATA_BY_COUNTRY_',self::KEY_INTERVAL=>0,self::KEY_MULTI=>0,self::KEY_NAME=>'多国库存报告'],
        //每日库存报告
        10 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_CURRENT_INVENTORY_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'每日库存报告'],
        //移除订单详情报告
        11 => [self::KEY_TYPE=>'_GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA_',self::KEY_INTERVAL=>1,self::KEY_MULTI=>0,self::KEY_NAME=>'移除订单详情报告'],
        //财务报表V2。报告内容周期14天更新
        12 => [self::KEY_TYPE=>'_GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2_',self::KEY_INTERVAL=>14,self::KEY_MULTI=>0,self::KEY_NAME=>'周期性财务报表'],
        //FBA Reserved Inventory Report 报告内容接近实时更新
        13 => [self::KEY_TYPE=>'_GET_RESERVED_INVENTORY_DATA_',self::KEY_INTERVAL=>0,self::KEY_MULTI=>1,self::KEY_NAME=>'实时保留库存报告'],
    ];

}
